#include <iostream>
#include <vector>
#include <queue>
using namespace std;

int dx[4]={0,0,-1,1};
int dy[4]={1,-1,0,0};
int main()
{
	int n,m;
	cin>>n>>m;
	queue<pair<int,int>> q;
	vector<vector<int>> arr(n+1,vector<int>(m+1));
	vector<vector<int>> ret(n+1,vector<int>(m+1,-1));
	for(int i=1;i<=n;i++)
	{
		for(int j=1;j<=m;j++)
		{
			char c;
			cin>>c;
			arr[i][j]=c-'0';
			if(arr[i][j]==1)
			{
				q.push({i,j});
				ret[i][j]=0;
			}	
		}
	}
	
	while(q.size())
	{
		auto [x,y]=q.front();
		q.pop();
		for(int i=0;i<4;i++)
		{
			int nx=x+dx[i];
			int ny=y+dy[i];
			if(nx<1 || nx>n || ny<1 || ny>m || ret[nx][ny]!=-1)
				continue;
			ret[nx][ny]=ret[x][y]+1;
			q.push({nx,ny});
		}
	}
	for(int i=1;i<=n;i++)
	{
		for(int j=1;j<=m;j++)
		{
			cout<<ret[i][j]<<' ';
		}
		cout<<endl;
	}
	return 0;
}
